package top.tangyh.lamp.care.common;

import lombok.Data;
import top.tangyh.lamp.care.vo.result.ObsvCfgDto;

import java.io.Serializable;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * <p>
 *  用于观察记录查询的辅助类
 * </p>
 *
 * @author: fyh
 * @since: 2021/11/18
 */
@Data
public class ObsvCfgIndexDto implements Serializable {
	/**
	 *   结构体索引，key为结构体成员的观察项标识， value为含有该成员的结构体的观察项标识
	 */
	private Map<String, Set<String>> structIndex;

	/**
	 *   仅结构体索引，key为结构体成员的观察项标识， value为含有该成员的所有结构体
	 */
	private Map<String, List<ObsvCfgDto>> onlyStructMap;

	/**
	 *   结构体索引，key为结构体成员的观察项标识， value为结构体定义
	 */
	private Map<String, ObsvCfgDto> structMap;

	/**
	 *  所有次索引， 用于算法查询,KEY为观察项标识，value与对应的具体配置
	 */
	private Map<String, ObsvCfgDto>  propIndex;

	public ObsvCfgIndexDto(){
		propIndex =new LinkedHashMap<>();
		structIndex=new LinkedHashMap<>();
		structMap=new LinkedHashMap<>();
		onlyStructMap=new LinkedHashMap<>();
	}

}
